package com.king.pattem.singleton;

import java.io.Serializable;

/**
 * 懒汉式单例（线程安全）
 * 在类加载的时候不创建单例实例。只有在第一次请求实例的时候的时候创建，并且只在第一次创建后，以后不再创建该类的实例。
 * @author taomk
 */
public class LazySingleton implements Serializable {
	
	/**
     * 私有静态对象,加载时候不做初始化
     */
    private static LazySingleton intance=null;
    /**
     * 私有构造方法,避免外部创建实例
     */
    private LazySingleton(){
        System.out.println("LazySingleton is create");
    }
    /**
     * 静态工厂方法,返回此类的唯一实例.  
     * 当发现实例没有初始化的时候,才初始化.
     * @return LazySingleton
     */
    public final static synchronized LazySingleton getInstance(){
        if(intance==null){
            intance=new LazySingleton();
        }
        return intance;
    }
}
